{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Check Modules.ipynb\n",
    "\n",
    "The Check Modules Notebook loads iprPy and calls the check_modules() function to test the current status of all included modules.  The output provides details about which modules are currently available.  In particular, the modules that fail import likely raise either\n",
    "\n",
    "- __ModuleNotFoundError__ if the module has additional Python library requirements that need to be installed.\n",
    "- __NotImplementedError__ if the module is in development or needs to be updated to current iprPy versions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iprPy version 0.10.2\n"
     ]
    }
   ],
   "source": [
    "import iprPy\n",
    "print('iprPy version', iprPy.__version__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database styles that passed import:\n",
      "- cdcs\n",
      "- json\n",
      "- local\n",
      "- mdcs\n",
      "- mongo\n",
      "database styles that failed import:\n",
      "\n",
      "calculation styles that passed import:\n",
      "- bain_transformation_map\n",
      "- crystal_space_group\n",
      "- diatom_scan\n",
      "- dislocation_monopole\n",
      "- dislocation_periodic_array\n",
      "- dislocation_SDVPN\n",
      "- elastic_constants_static\n",
      "- E_vs_r_scan\n",
      "- isolated_atom\n",
      "- phonon\n",
      "- point_defect_diffusion\n",
      "- point_defect_static\n",
      "- relax_box\n",
      "- relax_dynamic\n",
      "- relax_static\n",
      "- stacking_fault_map_2D\n",
      "- stacking_fault_static\n",
      "- surface_energy_static\n",
      "calculation styles that failed import:\n",
      "- dislocation_crss: <class 'NotImplementedError'>: Needs updating\n",
      "- dislocation_periodic_array_stress: <class 'NotImplementedError'>: Needs updating\n",
      "- dislocation_SDVPN_stress: <class 'NotImplementedError'>: Needs updating\n",
      "- dislocation_vacancy: <class 'NotImplementedError'>: Needs updating\n",
      "- elastic_constants_dynamic: <class 'NotImplementedError'>: Needs updating\n",
      "- grain_boundary_bcc: <class 'NotImplementedError'>: Needs updating\n",
      "- grain_boundary_search: <class 'NotImplementedError'>: Needs updating\n",
      "\n",
      "record styles that passed import:\n",
      "- calculation_bain_transformation_map\n",
      "- calculation_crystal_space_group\n",
      "- calculation_diatom_scan\n",
      "- calculation_dislocation_monopole\n",
      "- calculation_dislocation_periodic_array\n",
      "- calculation_dislocation_SDVPN\n",
      "- calculation_elastic_constants_static\n",
      "- calculation_E_vs_r_scan\n",
      "- calculation_isolated_atom\n",
      "- calculation_phonon\n",
      "- calculation_point_defect_diffusion\n",
      "- calculation_point_defect_static\n",
      "- calculation_relax_box\n",
      "- calculation_relax_dynamic\n",
      "- calculation_relax_static\n",
      "- calculation_stacking_fault_map_2D\n",
      "- calculation_stacking_fault_static\n",
      "- calculation_surface_energy_static\n",
      "- crystal_prototype\n",
      "- dislocation\n",
      "- free_surface\n",
      "- point_defect\n",
      "- PotentialProperties\n",
      "- potential_LAMMPS\n",
      "- potential_openKIM_LAMMPS\n",
      "- potential_users_LAMMPS\n",
      "- reference_crystal\n",
      "- relaxed_crystal\n",
      "- stacking_fault\n",
      "record styles that failed import:\n",
      "- calculation_dislocation_periodic_array_stress: <class 'NotImplementedError'>: Needs updating\n",
      "- calculation_dislocation_SDVPN_stress: <class 'NotImplementedError'>: Needs updating\n",
      "\n",
      "input.subset styles that passed import:\n",
      "- atomman_elasticconstants\n",
      "- atomman_gammasurface\n",
      "- atomman_systemload\n",
      "- atomman_systemmanipulate\n",
      "- dislocation\n",
      "- freesurface\n",
      "- lammps_commands\n",
      "- lammps_minimize\n",
      "- lammps_potential\n",
      "- pointdefect\n",
      "- stackingfault\n",
      "- units\n",
      "input.subset styles that failed import:\n",
      "\n",
      "input.buildcombos styles that passed import:\n",
      "- atomicarchive\n",
      "- atomicparent\n",
      "- atomicreference\n",
      "- crystalprototype\n",
      "- defect\n",
      "- interatomicpotential\n",
      "input.buildcombos styles that failed import:\n",
      "\n"
     ]
    }
   ],
   "source": [
    "iprPy.check_modules()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
